﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.IO;

namespace WCFFileTransfer
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract]
    public interface IFileTransfer
    {

        [OperationContract]
        void TransferFile(FileWrapper file);
        
    }


    /// <summary>
    /// 消息契约（定义于SOAP消息对应的强类型类）
    /// 该类指定了一个文件的路径、名字和数据部分
    /// </summary>
    [MessageContract]
    public class FileWrapper
    {
        /// <summary>
        /// 指定数据成员为SOAP消息头
        /// </summary>
        [MessageHeader]
        public string FilePath;

        [MessageHeader]
        public string FileName;


        /// <summary>
        /// 指定数据成员为SOAP正文元素(只能有一个)
        /// </summary>
        [MessageBodyMember]
        public Stream FileData;
    }
}
